<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        /* 
            输入：target = 7, nums = [2,3,1,2,4,3]
            输出：2
            解释：子数组 [4,3] 是该条件下的长度最小的子数组。

            输入：target = 4, nums = [1,4,4]
            输出：1

            输入：target = 11, nums = [1,1,1,1,1,1,1,1]
            输出：0

            时间复杂度：O(n ^ 2) 超出时间限制
            空间复杂度：O(1)
        */
        var minSubArrayLen = function(target, nums) {
            // 这里需要初始化为一个比数组长度要大的值
            let ans = nums.length + 1; 
            let sum = 0; // 求和
            let len = 0; // 子数组长度
            for (let i = 0; i < nums.length; i++) {
                // 需要置空sum
                sum = 0;
                for (let j = i; j < nums.length; j++) {
                    sum += nums[j]
                    // 如果和大于target，立即判断当前的数组长度是不是最小，然后return
                    if (sum >= target) {
                        // 分不清为什么要+1，就假设j和i是相等的，依然要有一个值
                        len = j - i + 1;
                        ans = ans < len ? ans : len;
                        break;
                    }
                }
            }
            if (ans > nums.length) return 0
            return ans
        };
        console.log(minSubArrayLen(7, [2, 3, 1, 2, 4, 3]));
        console.log(minSubArrayLen(4, [1, 4, 4]));
        console.log(minSubArrayLen(11, [1, 1, 1, 1, 1, 1, 1, 1]));
        console.log(minSubArrayLen(213, [12,28,83,4,25,26,25,2,25,25,25,12]));
        
    </script>
</body>
</html>